package is202.hrms.web;

import is202.hrms.ejb.ForumEJB;
import is202.hrms.entity.Forum;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 * http://docs.oracle.com/javaee/6/tutorial/doc/ er hvor man finner dokumentasjon
 * Google it!
 * 
 * Backing bean for forum.xhtml. @Named viser at dette er en 
 * CDI backing bean. @ConversationScoped kontrollerer livstiden til beanen.
 * Livstiden til en ConversationScoped bean blir håndtert i koden.
 *
 * CDI sørger for at inputen er riktig format
 * 
 * @author Kim
 */
@Named("forumbean")
@ConversationScoped
public class ForumBean implements Serializable {

    // @Inject spørr serveren om å gi oss et
    // Conversation objekt, og lagre det i conv
    @Inject private Conversation conv;
    @EJB ForumEJB foruEjb;
    private boolean updating;

    //Forum felter - Disse feltene blir kopiert til et Forum
    // objekt, når data skal lagres i databasen.
    private long forumNr;
    private String tema;
    private String innhold;
                
    private List<Forum> forumet;

    public ForumBean() {
    }

    /**
     * Setter et nummer når en forum opprettes
     */
    
    /*
    public void setForumNr(long forumNr) {
        if (conv.isTransient()) {
            conv.begin();
        }

        
     
         //If setnigen trengs ikke fordi vi ikke har en metode som oppdaterer forumnummeret
         
        Forum forum = foruEjb.find(forumNr);
       if (null == forum) {
             //Vi kommer hit hvis forumNr ikker er gyldig, eller hvis
             //registerNo er gyldig men det ikke finnes noen registreringer med dette nummert
            
            updating = false;
            forumNr = 0;
            tema = "";
            innhold = "";
            forumet = new ArrayList<Forum>();
        }
       else {
            updating = true;
            this.forumNr = forum.getForumNr();
            tema = forum.getTema();
            innhold = forum.getInnhold();
            forumet = forum.getForum();
        }
    }

    */
    
    public long getForumNr() {
        return forumNr;
    }

    public String getTema() {
        return tema;
    }

    public void setTema(String tema) {
        this.tema = tema;
    }
    
    public String getInnhold() {
        return innhold;
    }

    public void setInnhold(String innhold) {
        this.innhold = innhold;
    }

    public List<Forum> getForum() {
        return forumet;
    }

    public boolean isUpdating() {
        return updating;
    }

    private Forum createForumObject() {
        // Lager et Forum objekt som inneholder data
        // fra form. Objektet kan så blir sendt til
        // registerListBean
        Forum forum = new Forum();
        //forum.setForumNr(forumNr);
        forum.setTema(tema);
        forum.setInnhold(innhold);
        return forum;
    }
    
    // Sjekker om data ble lagret eller ikke,
    // og sender deg til success siden hvis den ble det.
    public View saveForum() {
        Forum forum = createForumObject();
        if (forum.getForumNr() > 0) foruEjb.update(forum);
        else foruEjb.insert(forum); 
   
        return View.forumsuccess;        
    }
}
